package cn.itsource.pethome.service;

import cn.itsource.pethome.domain.User;
import cn.itsource.pethome.domain.dto.UserDto;
import cn.itsource.pethome.query.UserQuery;
import cn.itsource.pethome.utils.AjaxResult;

import javax.servlet.http.HttpSession;

public interface IUserService extends IBaseService<User, UserQuery> {

    /**
     * 验证手机号唯一
     * @param type phoneReg表示手机验证码注册 phoneLogin表示手机验证码登录
     * @param phone 手机号
     * @return
     */
    AjaxResult checkPhone(String type, String phone);

    /**
     * 发送手机验证码
     * @param type phoneReg表示手机验证码注册 phoneLogin表示手机验证码登录
     * @param phone 手机号
     * @return
     */
    AjaxResult sendMobileCode(String type, String phone);

    /**
     * 用户注册
     * @param userDto
     */
    AjaxResult userReg(UserDto userDto);

    /**
     * 用户登录
     * userDto的type属性：
     *  front表示前台普通用户登录
     *  admin表示后台管理系统用户登录
     * @param userDto
     * @return
     */
    AjaxResult login(UserDto userDto,HttpSession session);

    /**
     * 微信登录：通过code获取AccessToken
     * @param code  微信APP中扫码成功后得到的code
     * @return
     */
    AjaxResult wechatLogin(String code);

    /**
     * 微信用户绑定
     * @param userDto type等于phoneBind表示手机验证码绑定 usernameBind表示用户名密码绑定
     * @return
     */
    AjaxResult wechatUserBind(UserDto userDto);
}
